package com.Exception异常;

/**
 * 作    者 ：吾路巴尼
 * 创建时间 ：2025/2/18-12:50
 */
public class ExceptionExercise01 {
    public static void main(String[] args) {
        // 调用method方法并打印返回值
        System.out.println(method());
    }

    public static int method() {
        int i = 1;
        try {
            i++; // i自增，i变为2
            String[] str = new String[3]; // 创建一个长度为3的字符串数组，未初始化，str[i]为null
            if (str[1].equals("hello")) // 检查str[1]是否为"hello"，由于str[1]为null（空），会抛出NullPointerException被捕获
                System.out.println(str[1]);
            else
                str[3] = "world"; // 尝试访问str[3]，由于数组长度为3，会抛出ArrayIndexOutOfBoundsException，不会执行到此处，所以这个异常不会捕获；
            return 1; // 正常情况下返回1
        } catch (ArrayIndexOutOfBoundsException e) {
            // 捕获数组越界异常，返回2
            return 2;
        } catch (NullPointerException e) {
            // 捕获空指针异常，i的值（2），然后i自增为3
            return i++;
        } finally {
            // finally块中的代码始终执行，返回++i的值（4）；
            return ++i;
        }
    }
}